首页/ 学科题库/ git/ git merge 合并分支
git 实战教程

git merge 合并分支

2026-05-11 约 7 分钟 juanwangdev

git merge 合并分支

git merge 命令将一个分支的变更合并到当前分支。

基本用法

Bash
# 合并指定分支到当前分支
git merge <branch>

# 合并 feature 到 main
git checkout main
git merge feature

合并流程

Bash
# 1. 切换到目标分支(接收合并的分支)
git checkout main

# 2. 合并源分支
git merge feature/login

# 3. 处理冲突(如果有)
# 手动编辑冲突文件

# 4. 提交合并结果
git add .
git commit -m "Merge feature/login"

合并类型

类型说明产生结果
快进合并目标分支无新提交直接移动指针
普通合并两个分支都有提交创建合并提交
冲突合并同文件不同修改需手动解决

快进合并

Bash
合并前:
main:    A → B → C
feature: A → B → C → D → E

合并后:
main:    A → B → C → D → E  (指针直接移动)
Bash
# Git 自动执行快进合并
git merge feature
# Fast-forward

普通合并

Bash
# 禁止快进合并,创建合并提交
git merge --no-ff feature

# 合并提交结构
#    A → B → C → M (merge commit)
#               ↗
#    A → E → F

处理合并冲突

Bash
# 冲突时的文件内容
<<<<<<< HEAD
当前分支的内容
=======
要合并分支的内容
>>>>>>> feature

# 解决步骤:
# 1. 编辑文件,保留需要的内容
# 2. 删除冲突标记
# 3. git add <file>
# 4. git commit

冲突解决示例

Bash
# 原冲突内容
<<<<<<< HEAD
console.log("Hello");
=======
console.log("Hi");
>>>>>>> feature

# 解决后
console.log("Hello");

常用选项

text
# 禁止快进,创建合并提交
git merge --no-ff feature

# 强制快进
git merge --ff-only feature

# 查看合并结果但不提交
git merge --no-commit feature

合并冲突时冷静处理,理解两边的修改意图后选择正确的合并结果。

要点总结

  1. 先切换到目标分支再执行合并
  2. 快进合并:直接移动指针,无合并提交
  3. --no-ff 创建合并提交,保留分支历史
  4. 冲突时手动编辑文件解决,再提交
  5. 冲突标记:<<<<<<< ======= >>>>>>>
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 git checkout 切换分支 下一篇 → 分支概念理解